#include "test_cali.h"
#include "global.h"
#include "mag_data.h"
#include <stdio.h>

struct mag_cali_res cali_res = {
	.offset = {0.0f},
	.scale = {0.0f}
};

uint8_t run_mag_cali(void)
{
	static uint16_t data_seq = 0;
	uint8_t cali_result;
	if (data_seq >= sizeof(mag_raw)/sizeof(mag_raw[0])) {
		printf("out of data\r\n");
		return CALI_FAILED;
	}
	cali_result = mag_check_calibration(mag_raw[data_seq++], &cali_res);
	if (cali_result == CALI_PROCESSING) {
		printf(".");
	} else if (cali_result == CALI_DONE) {
		printf("\r\ncalibration complete: %f %f %f %f %f %f\r\n",
		       cali_res.offset[0], cali_res.offset[1],
		       cali_res.offset[2], cali_res.scale[0],
		       cali_res.scale[1], cali_res.scale[2]);
	}
}
